package com.wiener.core.services;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.wiener.core.beans.Academica;
import com.wiener.core.beans.Historico;
import com.wiener.core.beans.Notas;
import com.wiener.core.beans.Obligaciones;
import com.wiener.core.domain.Atencion;
import com.wiener.core.domain.Cliente;
import com.wiener.core.domain.ClienteAux;
import com.wiener.core.domain.Concepto;
import com.wiener.core.domain.Entidad;
import com.wiener.core.domain.EntidadAux;
import com.wiener.core.domain.ObligacionPago;
import com.wiener.core.domain.Recibo;

public interface ObligacionPagoServices {

	List<Entidad> obtenerCaptaciones() throws Exception;

	List<Entidad> obtenerCategorias() throws Exception;

	List<Entidad> obtenerMedioAtencion() throws Exception;

	List<Entidad> obtenerModoAcercamiento() throws Exception;

	List<Entidad> obtenerDescripcionAcercamiento(String medio) throws Exception;

	List<Entidad> obtenerDetalleAcercamiento(String medio) throws Exception;

	List<Entidad> obtenerPaises() throws Exception;

	List<Entidad> obtenerEmpresas() throws Exception;

	List<Entidad> obtenerCargos(String as_empresa) throws Exception;

	List<EntidadAux> obtenerCarrerasSugeridas() throws Exception;

	List<Entidad> obtenerInstitucionProcedencia() throws Exception;

	List<Entidad> obtenerUbigeo(String tipo, String ubigeo) throws Exception;

	List<Entidad> obtenerSexo() throws Exception;

	List<ObligacionPago> listaObligaciones();

	List<ClienteAux> obtenerCliente(String as_dni, String as_ap, String as_am,
			String as_nombres) throws Exception;

	List<Cliente> cargaCliente(String cliente_informes) throws Exception;

	List<Atencion> cargaAtencion(String cliente_informes) throws Exception;

	List<Entidad> obtenerTipoColegios() throws Exception;

	List<Entidad> obtenerColegios() throws Exception;

	List<Entidad> obtenerInstitucion1() throws Exception;

	List<Entidad> obtenerCarreraInst1(String as_institucion) throws Exception;

	List<Entidad> obtenerPeriodo1(String as_institucion) throws Exception;

	List<Entidad> obtenerPeriodoDet1(String as_periodo, String as_institucion)
			throws Exception;

	List<Entidad> obtenerModa1(String as_institucion) throws Exception;

	List<Entidad> obtenerCodMod1(String as_institucion) throws Exception;

	List<Entidad> obtenerTurno1() throws Exception;

	List<Entidad> obtenerTurno2(String as_carrera, String as_turno,
			String as_mes) throws Exception;

	List<Entidad> obtenerDescuento1() throws Exception;

	List<Entidad> obtenerDescuento2(String as_cliente) throws Exception;

	List<Entidad> obtenerModalidad1(String as_modalidad) throws Exception;

	void manteInformes(String as_opcion, String LS_cliente,
			String LS_apellido_paterno, String LS_apellido_materno,
			String LS_nombres, String LS_sexo, String LS_direccion,
			String LS_telefono, Date LS_fecha_nacimiento, String LS_distrito,
			String LS_email, String LS_documento_identidad,
			String LS_colegio_anio_termino, String LS_institucion_procedencia,
			String LS_modo_Acercamiento, String LS_grado,
			String LS_numero_carnet, String LS_colegio,
			String LS_institucion_anio_egreso, String LS_tipo_colegio,
			String LS_empresa, String LS_ruc, String LS_alumno_recomienda,
			String LS_detalle_acercamiento, String LS_persona_ref,
			String LS_telefono_ref, String LS_tipo_captacion,
			String LS_carrera_sugerida, String LS_obs_traslado,
			String LS_telefono2, String LS_tipo_informe,
			String LS_esextranjero, String LS_espais, String LS_medio_atencion,
			String LS_proextranjero, String LS_propais, String LS_anio_exp_emp,
			String LS_obs_emp, String LS_puesto) throws Exception;

	void manteAteInformes(String as_opcion, String as_atencion,
			String as_cliente, String as_institucion, String as_flag_captacion,
			String ad_fecha_modificacion, String as_usuario_modificacion,
			String as_tipo_acercamiento, String as_turno,
			String ad_fecha_creacion, String as_sede, String as_seccion,
			String as_tipo_persona, String as_matricula,
			String ad_fecha_captacion, String as_aprobacion, String as_carrera,
			String as_modalidad, String as_nivel, String as_usuario_creacion,
			String as_atencion_informes_periodo, String as_ficha,
			String as_encuesta, String as_sub_modalidad,
			String as_tipo_descuento, String as_descuento,
			String as_motivodescuento, String as_mes, String as_pkcodigo,
			String as_mes_inicio) throws Exception;

	/* Segunda parte */
	List<Recibo> buscarInformeAlumnoPorDni(String documentoIdentidad);

	List<Recibo> buscarInformeAlumnoPorCodigo(String codigo);

	List<Obligaciones> buscarObligacionesPorCodigo(String codigoAlumno);

	List<Historico> buscarHistoricosPorCodigo(String codigoAlumno);

	List<Academica> buscarSituacionAcademicaPorCodigo(String codigoAlumno);
	String buscarFechaHora();
	String buscarCodigoSede(String nombreUsuario);	
	String buscarNumeroDocumento(String codigoUsuario, String codigoTerminal,String codigoInstitucion,String tipoDocumento,
			String codigoAlumno);
	List<Entidad> buscarLugarPago();
	List<Entidad> buscarInstitucion();
	List<Entidad> buscarTipoDocumento();
	List<Entidad> buscarMoneda();
	BigDecimal buscarTipoCambio(String moneda);
	String buscarRuc(String codigoAlumno);
	List<Entidad> buscarPeriodos(String codigoAlumno); 
	String generarObligaciones(String codigoAlumno,String codigoUsuario,String periodo);
	List<Concepto> buscarConceptos(String codigoIntitucion);
	String buscarLogin(String usuario, String clave);
	BigDecimal buscarPrecios(String codigoInstitucion,String codigoClasificacion,String moneda,String codidoAlumno);
	List<Notas> buscarNotas(String codigoAlumno);
	
	 String guardarDetalle(String codidoInstitucion,
				String lugarPago, String codigoUsuario, String tipoDocumento, String numeroDocumento,
				String ruc,	String monedaDocumento, String tipoDeCambio, String codigoAlumno,			
				String ultimoSsuario, String linea,
				String servicioClasificacion, String numeroCuota,
				String periodoPago, String cantidad, String precio,
				String descuento, String subTotal,int items) throws Exception;
}
